#pragma once

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
typedef int SLTDataType;

typedef struct SListNode
{
	struct SListNode* next;
	SLTDataType data;
}SLTNode;

void SListPrint(SLTNode* phead);

void SListPushBack(SLTNode** pphead, SLTDataType x);

void SListPushFront(SLTNode** pphead, SLTDataType x);

void SListPopBack(SLTNode** pphead);

void SListPopFront(SLTNode** pphead);

SLTNode* SListFind(SLTNode* phead, SLTDataType x);

void SListInsert(SLTNode** pphead, SLTNode* pos, SLTDataType x);

void SListInsertAfter(SLTNode* pos, SLTDataType x);

void SListErase(SLTNode** pphead, SLTNode* pos);

void SListEraseAfter(SLTNode* pos);

void SListDestory(SLTNode* phead);